
/***********************************************************************

Copyright 2017 quantOS-org

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

***********************************************************************/
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: md.proto

#ifndef PROTOBUF_md_2eproto__INCLUDED
#define PROTOBUF_md_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2005000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)

namespace jzs {
namespace msg {
namespace md {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_md_2eproto();
void protobuf_AssignDesc_md_2eproto();
void protobuf_ShutdownFile_md_2eproto();

class AskBid;
class QuoteStatic;
class MarketQuoteExData;
class MarketQuote;
class MarketDataInd;

enum MarketDataType {
  MD_STK_L1 = 1,
  MD_STK_L2 = 2,
  MD_FUT_L1 = 3,
  MD_FUT_L2 = 4
};
bool MarketDataType_IsValid(int value);
const MarketDataType MarketDataType_MIN = MD_STK_L1;
const MarketDataType MarketDataType_MAX = MD_FUT_L2;
const int MarketDataType_ARRAYSIZE = MarketDataType_MAX + 1;

const ::google::protobuf::EnumDescriptor* MarketDataType_descriptor();
inline const ::std::string& MarketDataType_Name(MarketDataType value) {
  return ::google::protobuf::internal::NameOfEnum(
    MarketDataType_descriptor(), value);
}
inline bool MarketDataType_Parse(
    const ::std::string& name, MarketDataType* value) {
  return ::google::protobuf::internal::ParseNamedEnum<MarketDataType>(
    MarketDataType_descriptor(), name, value);
}
// ===================================================================

class AskBid : public ::google::protobuf::Message {
 public:
  AskBid();
  virtual ~AskBid();

  AskBid(const AskBid& from);

  inline AskBid& operator=(const AskBid& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const AskBid& default_instance();

  void Swap(AskBid* other);

  // implements Message ----------------------------------------------

  AskBid* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AskBid& from);
  void MergeFrom(const AskBid& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated double bidPrice = 1;
  inline int bidprice_size() const;
  inline void clear_bidprice();
  static const int kBidPriceFieldNumber = 1;
  inline double bidprice(int index) const;
  inline void set_bidprice(int index, double value);
  inline void add_bidprice(double value);
  inline const ::google::protobuf::RepeatedField< double >&
      bidprice() const;
  inline ::google::protobuf::RepeatedField< double >*
      mutable_bidprice();

  // repeated uint32 bidVolume = 2;
  inline int bidvolume_size() const;
  inline void clear_bidvolume();
  static const int kBidVolumeFieldNumber = 2;
  inline ::google::protobuf::uint32 bidvolume(int index) const;
  inline void set_bidvolume(int index, ::google::protobuf::uint32 value);
  inline void add_bidvolume(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      bidvolume() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_bidvolume();

  // repeated double askPrice = 3;
  inline int askprice_size() const;
  inline void clear_askprice();
  static const int kAskPriceFieldNumber = 3;
  inline double askprice(int index) const;
  inline void set_askprice(int index, double value);
  inline void add_askprice(double value);
  inline const ::google::protobuf::RepeatedField< double >&
      askprice() const;
  inline ::google::protobuf::RepeatedField< double >*
      mutable_askprice();

  // repeated uint32 askVolume = 4;
  inline int askvolume_size() const;
  inline void clear_askvolume();
  static const int kAskVolumeFieldNumber = 4;
  inline ::google::protobuf::uint32 askvolume(int index) const;
  inline void set_askvolume(int index, ::google::protobuf::uint32 value);
  inline void add_askvolume(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      askvolume() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_askvolume();

  // @@protoc_insertion_point(class_scope:jzs.msg.md.AskBid)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::RepeatedField< double > bidprice_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > bidvolume_;
  ::google::protobuf::RepeatedField< double > askprice_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > askvolume_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];

  friend void  protobuf_AddDesc_md_2eproto();
  friend void protobuf_AssignDesc_md_2eproto();
  friend void protobuf_ShutdownFile_md_2eproto();

  void InitAsDefaultInstance();
  static AskBid* default_instance_;
};
// -------------------------------------------------------------------

class QuoteStatic : public ::google::protobuf::Message {
 public:
  QuoteStatic();
  virtual ~QuoteStatic();

  QuoteStatic(const QuoteStatic& from);

  inline QuoteStatic& operator=(const QuoteStatic& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const QuoteStatic& default_instance();

  void Swap(QuoteStatic* other);

  // implements Message ----------------------------------------------

  QuoteStatic* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const QuoteStatic& from);
  void MergeFrom(const QuoteStatic& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint32 date = 1;
  inline bool has_date() const;
  inline void clear_date();
  static const int kDateFieldNumber = 1;
  inline ::google::protobuf::uint32 date() const;
  inline void set_date(::google::protobuf::uint32 value);

  // required uint32 tradeday = 2;
  inline bool has_tradeday() const;
  inline void clear_tradeday();
  static const int kTradedayFieldNumber = 2;
  inline ::google::protobuf::uint32 tradeday() const;
  inline void set_tradeday(::google::protobuf::uint32 value);

  // required double uplimit = 3;
  inline bool has_uplimit() const;
  inline void clear_uplimit();
  static const int kUplimitFieldNumber = 3;
  inline double uplimit() const;
  inline void set_uplimit(double value);

  // required double downlimit = 4;
  inline bool has_downlimit() const;
  inline void clear_downlimit();
  static const int kDownlimitFieldNumber = 4;
  inline double downlimit() const;
  inline void set_downlimit(double value);

  // required int64 preinterest = 5;
  inline bool has_preinterest() const;
  inline void clear_preinterest();
  static const int kPreinterestFieldNumber = 5;
  inline ::google::protobuf::int64 preinterest() const;
  inline void set_preinterest(::google::protobuf::int64 value);

  // required double preclose = 6;
  inline bool has_preclose() const;
  inline void clear_preclose();
  static const int kPrecloseFieldNumber = 6;
  inline double preclose() const;
  inline void set_preclose(double value);

  // required double presettle = 7;
  inline bool has_presettle() const;
  inline void clear_presettle();
  static const int kPresettleFieldNumber = 7;
  inline double presettle() const;
  inline void set_presettle(double value);

  // required double predelta = 8;
  inline bool has_predelta() const;
  inline void clear_predelta();
  static const int kPredeltaFieldNumber = 8;
  inline double predelta() const;
  inline void set_predelta(double value);

  // @@protoc_insertion_point(class_scope:jzs.msg.md.QuoteStatic)
 private:
  inline void set_has_date();
  inline void clear_has_date();
  inline void set_has_tradeday();
  inline void clear_has_tradeday();
  inline void set_has_uplimit();
  inline void clear_has_uplimit();
  inline void set_has_downlimit();
  inline void clear_has_downlimit();
  inline void set_has_preinterest();
  inline void clear_has_preinterest();
  inline void set_has_preclose();
  inline void clear_has_preclose();
  inline void set_has_presettle();
  inline void clear_has_presettle();
  inline void set_has_predelta();
  inline void clear_has_predelta();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 date_;
  ::google::protobuf::uint32 tradeday_;
  double uplimit_;
  double downlimit_;
  ::google::protobuf::int64 preinterest_;
  double preclose_;
  double presettle_;
  double predelta_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(8 + 31) / 32];

  friend void  protobuf_AddDesc_md_2eproto();
  friend void protobuf_AssignDesc_md_2eproto();
  friend void protobuf_ShutdownFile_md_2eproto();

  void InitAsDefaultInstance();
  static QuoteStatic* default_instance_;
};
// -------------------------------------------------------------------

class MarketQuoteExData : public ::google::protobuf::Message {
 public:
  MarketQuoteExData();
  virtual ~MarketQuoteExData();

  MarketQuoteExData(const MarketQuoteExData& from);

  inline MarketQuoteExData& operator=(const MarketQuoteExData& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const MarketQuoteExData& default_instance();

  void Swap(MarketQuoteExData* other);

  // implements Message ----------------------------------------------

  MarketQuoteExData* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const MarketQuoteExData& from);
  void MergeFrom(const MarketQuoteExData& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional double rsi_turnover = 1;
  inline bool has_rsi_turnover() const;
  inline void clear_rsi_turnover();
  static const int kRsiTurnoverFieldNumber = 1;
  inline double rsi_turnover() const;
  inline void set_rsi_turnover(double value);

  // optional double rsi_roc = 2;
  inline bool has_rsi_roc() const;
  inline void clear_rsi_roc();
  static const int kRsiRocFieldNumber = 2;
  inline double rsi_roc() const;
  inline void set_rsi_roc(double value);

  // optional double rop_found = 3;
  inline bool has_rop_found() const;
  inline void clear_rop_found();
  static const int kRopFoundFieldNumber = 3;
  inline double rop_found() const;
  inline void set_rop_found(double value);

  // @@protoc_insertion_point(class_scope:jzs.msg.md.MarketQuoteExData)
 private:
  inline void set_has_rsi_turnover();
  inline void clear_has_rsi_turnover();
  inline void set_has_rsi_roc();
  inline void clear_has_rsi_roc();
  inline void set_has_rop_found();
  inline void clear_has_rop_found();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  double rsi_turnover_;
  double rsi_roc_;
  double rop_found_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];

  friend void  protobuf_AddDesc_md_2eproto();
  friend void protobuf_AssignDesc_md_2eproto();
  friend void protobuf_ShutdownFile_md_2eproto();

  void InitAsDefaultInstance();
  static MarketQuoteExData* default_instance_;
};
// -------------------------------------------------------------------

class MarketQuote : public ::google::protobuf::Message {
 public:
  MarketQuote();
  virtual ~MarketQuote();

  MarketQuote(const MarketQuote& from);

  inline MarketQuote& operator=(const MarketQuote& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const MarketQuote& default_instance();

  void Swap(MarketQuote* other);

  // implements Message ----------------------------------------------

  MarketQuote* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const MarketQuote& from);
  void MergeFrom(const MarketQuote& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint32 jzcode = 1;
  inline bool has_jzcode() const;
  inline void clear_jzcode();
  static const int kJzcodeFieldNumber = 1;
  inline ::google::protobuf::uint32 jzcode() const;
  inline void set_jzcode(::google::protobuf::uint32 value);

  // optional string symbol = 2;
  inline bool has_symbol() const;
  inline void clear_symbol();
  static const int kSymbolFieldNumber = 2;
  inline const ::std::string& symbol() const;
  inline void set_symbol(const ::std::string& value);
  inline void set_symbol(const char* value);
  inline void set_symbol(const char* value, size_t size);
  inline ::std::string* mutable_symbol();
  inline ::std::string* release_symbol();
  inline void set_allocated_symbol(::std::string* symbol);

  // required uint32 time = 3;
  inline bool has_time() const;
  inline void clear_time();
  static const int kTimeFieldNumber = 3;
  inline ::google::protobuf::uint32 time() const;
  inline void set_time(::google::protobuf::uint32 value);

  // required double open = 4;
  inline bool has_open() const;
  inline void clear_open();
  static const int kOpenFieldNumber = 4;
  inline double open() const;
  inline void set_open(double value);

  // required double high = 5;
  inline bool has_high() const;
  inline void clear_high();
  static const int kHighFieldNumber = 5;
  inline double high() const;
  inline void set_high(double value);

  // required double low = 6;
  inline bool has_low() const;
  inline void clear_low();
  static const int kLowFieldNumber = 6;
  inline double low() const;
  inline void set_low(double value);

  // required double last = 7;
  inline bool has_last() const;
  inline void clear_last();
  static const int kLastFieldNumber = 7;
  inline double last() const;
  inline void set_last(double value);

  // required int64 volume = 8;
  inline bool has_volume() const;
  inline void clear_volume();
  static const int kVolumeFieldNumber = 8;
  inline ::google::protobuf::int64 volume() const;
  inline void set_volume(::google::protobuf::int64 value);

  // required double turnover = 9;
  inline bool has_turnover() const;
  inline void clear_turnover();
  static const int kTurnoverFieldNumber = 9;
  inline double turnover() const;
  inline void set_turnover(double value);

  // required int64 interest = 10;
  inline bool has_interest() const;
  inline void clear_interest();
  static const int kInterestFieldNumber = 10;
  inline ::google::protobuf::int64 interest() const;
  inline void set_interest(::google::protobuf::int64 value);

  // required double close = 11;
  inline bool has_close() const;
  inline void clear_close();
  static const int kCloseFieldNumber = 11;
  inline double close() const;
  inline void set_close(double value);

  // required double settle = 12;
  inline bool has_settle() const;
  inline void clear_settle();
  static const int kSettleFieldNumber = 12;
  inline double settle() const;
  inline void set_settle(double value);

  // required double delta = 13;
  inline bool has_delta() const;
  inline void clear_delta();
  static const int kDeltaFieldNumber = 13;
  inline double delta() const;
  inline void set_delta(double value);

  // required .jzs.msg.md.AskBid ab = 14;
  inline bool has_ab() const;
  inline void clear_ab();
  static const int kAbFieldNumber = 14;
  inline const ::jzs::msg::md::AskBid& ab() const;
  inline ::jzs::msg::md::AskBid* mutable_ab();
  inline ::jzs::msg::md::AskBid* release_ab();
  inline void set_allocated_ab(::jzs::msg::md::AskBid* ab);

  // required .jzs.msg.md.QuoteStatic qs = 15;
  inline bool has_qs() const;
  inline void clear_qs();
  static const int kQsFieldNumber = 15;
  inline const ::jzs::msg::md::QuoteStatic& qs() const;
  inline ::jzs::msg::md::QuoteStatic* mutable_qs();
  inline ::jzs::msg::md::QuoteStatic* release_qs();
  inline void set_allocated_qs(::jzs::msg::md::QuoteStatic* qs);

  // required double iopv = 16;
  inline bool has_iopv() const;
  inline void clear_iopv();
  static const int kIopvFieldNumber = 16;
  inline double iopv() const;
  inline void set_iopv(double value);

  // required double avgbidpx = 17;
  inline bool has_avgbidpx() const;
  inline void clear_avgbidpx();
  static const int kAvgbidpxFieldNumber = 17;
  inline double avgbidpx() const;
  inline void set_avgbidpx(double value);

  // required int64 totbidvol = 18;
  inline bool has_totbidvol() const;
  inline void clear_totbidvol();
  static const int kTotbidvolFieldNumber = 18;
  inline ::google::protobuf::int64 totbidvol() const;
  inline void set_totbidvol(::google::protobuf::int64 value);

  // required double avgaskpx = 19;
  inline bool has_avgaskpx() const;
  inline void clear_avgaskpx();
  static const int kAvgaskpxFieldNumber = 19;
  inline double avgaskpx() const;
  inline void set_avgaskpx(double value);

  // required int64 totaskvol = 20;
  inline bool has_totaskvol() const;
  inline void clear_totaskvol();
  static const int kTotaskvolFieldNumber = 20;
  inline ::google::protobuf::int64 totaskvol() const;
  inline void set_totaskvol(::google::protobuf::int64 value);

  // optional int32 quoteage = 21;
  inline bool has_quoteage() const;
  inline void clear_quoteage();
  static const int kQuoteageFieldNumber = 21;
  inline ::google::protobuf::int32 quoteage() const;
  inline void set_quoteage(::google::protobuf::int32 value);

  // optional .jzs.msg.md.MarketQuoteExData ext = 22;
  inline bool has_ext() const;
  inline void clear_ext();
  static const int kExtFieldNumber = 22;
  inline const ::jzs::msg::md::MarketQuoteExData& ext() const;
  inline ::jzs::msg::md::MarketQuoteExData* mutable_ext();
  inline ::jzs::msg::md::MarketQuoteExData* release_ext();
  inline void set_allocated_ext(::jzs::msg::md::MarketQuoteExData* ext);

  // optional double vwap = 23;
  inline bool has_vwap() const;
  inline void clear_vwap();
  static const int kVwapFieldNumber = 23;
  inline double vwap() const;
  inline void set_vwap(double value);

  // @@protoc_insertion_point(class_scope:jzs.msg.md.MarketQuote)
 private:
  inline void set_has_jzcode();
  inline void clear_has_jzcode();
  inline void set_has_symbol();
  inline void clear_has_symbol();
  inline void set_has_time();
  inline void clear_has_time();
  inline void set_has_open();
  inline void clear_has_open();
  inline void set_has_high();
  inline void clear_has_high();
  inline void set_has_low();
  inline void clear_has_low();
  inline void set_has_last();
  inline void clear_has_last();
  inline void set_has_volume();
  inline void clear_has_volume();
  inline void set_has_turnover();
  inline void clear_has_turnover();
  inline void set_has_interest();
  inline void clear_has_interest();
  inline void set_has_close();
  inline void clear_has_close();
  inline void set_has_settle();
  inline void clear_has_settle();
  inline void set_has_delta();
  inline void clear_has_delta();
  inline void set_has_ab();
  inline void clear_has_ab();
  inline void set_has_qs();
  inline void clear_has_qs();
  inline void set_has_iopv();
  inline void clear_has_iopv();
  inline void set_has_avgbidpx();
  inline void clear_has_avgbidpx();
  inline void set_has_totbidvol();
  inline void clear_has_totbidvol();
  inline void set_has_avgaskpx();
  inline void clear_has_avgaskpx();
  inline void set_has_totaskvol();
  inline void clear_has_totaskvol();
  inline void set_has_quoteage();
  inline void clear_has_quoteage();
  inline void set_has_ext();
  inline void clear_has_ext();
  inline void set_has_vwap();
  inline void clear_has_vwap();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::std::string* symbol_;
  ::google::protobuf::uint32 jzcode_;
  ::google::protobuf::uint32 time_;
  double open_;
  double high_;
  double low_;
  double last_;
  ::google::protobuf::int64 volume_;
  double turnover_;
  ::google::protobuf::int64 interest_;
  double close_;
  double settle_;
  double delta_;
  ::jzs::msg::md::AskBid* ab_;
  ::jzs::msg::md::QuoteStatic* qs_;
  double iopv_;
  double avgbidpx_;
  ::google::protobuf::int64 totbidvol_;
  double avgaskpx_;
  ::google::protobuf::int64 totaskvol_;
  ::jzs::msg::md::MarketQuoteExData* ext_;
  double vwap_;
  ::google::protobuf::int32 quoteage_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(23 + 31) / 32];

  friend void  protobuf_AddDesc_md_2eproto();
  friend void protobuf_AssignDesc_md_2eproto();
  friend void protobuf_ShutdownFile_md_2eproto();

  void InitAsDefaultInstance();
  static MarketQuote* default_instance_;
};
// -------------------------------------------------------------------

class MarketDataInd : public ::google::protobuf::Message {
 public:
  MarketDataInd();
  virtual ~MarketDataInd();

  MarketDataInd(const MarketDataInd& from);

  inline MarketDataInd& operator=(const MarketDataInd& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const MarketDataInd& default_instance();

  void Swap(MarketDataInd* other);

  // implements Message ----------------------------------------------

  MarketDataInd* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const MarketDataInd& from);
  void MergeFrom(const MarketDataInd& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required .jzs.msg.md.MarketDataType type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::jzs::msg::md::MarketDataType type() const;
  inline void set_type(::jzs::msg::md::MarketDataType value);

  // optional .jzs.msg.md.MarketQuote stk = 2;
  inline bool has_stk() const;
  inline void clear_stk();
  static const int kStkFieldNumber = 2;
  inline const ::jzs::msg::md::MarketQuote& stk() const;
  inline ::jzs::msg::md::MarketQuote* mutable_stk();
  inline ::jzs::msg::md::MarketQuote* release_stk();
  inline void set_allocated_stk(::jzs::msg::md::MarketQuote* stk);

  // optional .jzs.msg.md.MarketQuote fut = 3;
  inline bool has_fut() const;
  inline void clear_fut();
  static const int kFutFieldNumber = 3;
  inline const ::jzs::msg::md::MarketQuote& fut() const;
  inline ::jzs::msg::md::MarketQuote* mutable_fut();
  inline ::jzs::msg::md::MarketQuote* release_fut();
  inline void set_allocated_fut(::jzs::msg::md::MarketQuote* fut);

  // @@protoc_insertion_point(class_scope:jzs.msg.md.MarketDataInd)
 private:
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_stk();
  inline void clear_has_stk();
  inline void set_has_fut();
  inline void clear_has_fut();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::jzs::msg::md::MarketQuote* stk_;
  ::jzs::msg::md::MarketQuote* fut_;
  int type_;

  mutable int _cached_size_;
  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];

  friend void  protobuf_AddDesc_md_2eproto();
  friend void protobuf_AssignDesc_md_2eproto();
  friend void protobuf_ShutdownFile_md_2eproto();

  void InitAsDefaultInstance();
  static MarketDataInd* default_instance_;
};
// ===================================================================


// ===================================================================

// AskBid

// repeated double bidPrice = 1;
inline int AskBid::bidprice_size() const {
  return bidprice_.size();
}
inline void AskBid::clear_bidprice() {
  bidprice_.Clear();
}
inline double AskBid::bidprice(int index) const {
  return bidprice_.Get(index);
}
inline void AskBid::set_bidprice(int index, double value) {
  bidprice_.Set(index, value);
}
inline void AskBid::add_bidprice(double value) {
  bidprice_.Add(value);
}
inline const ::google::protobuf::RepeatedField< double >&
AskBid::bidprice() const {
  return bidprice_;
}
inline ::google::protobuf::RepeatedField< double >*
AskBid::mutable_bidprice() {
  return &bidprice_;
}

// repeated uint32 bidVolume = 2;
inline int AskBid::bidvolume_size() const {
  return bidvolume_.size();
}
inline void AskBid::clear_bidvolume() {
  bidvolume_.Clear();
}
inline ::google::protobuf::uint32 AskBid::bidvolume(int index) const {
  return bidvolume_.Get(index);
}
inline void AskBid::set_bidvolume(int index, ::google::protobuf::uint32 value) {
  bidvolume_.Set(index, value);
}
inline void AskBid::add_bidvolume(::google::protobuf::uint32 value) {
  bidvolume_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
AskBid::bidvolume() const {
  return bidvolume_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
AskBid::mutable_bidvolume() {
  return &bidvolume_;
}

// repeated double askPrice = 3;
inline int AskBid::askprice_size() const {
  return askprice_.size();
}
inline void AskBid::clear_askprice() {
  askprice_.Clear();
}
inline double AskBid::askprice(int index) const {
  return askprice_.Get(index);
}
inline void AskBid::set_askprice(int index, double value) {
  askprice_.Set(index, value);
}
inline void AskBid::add_askprice(double value) {
  askprice_.Add(value);
}
inline const ::google::protobuf::RepeatedField< double >&
AskBid::askprice() const {
  return askprice_;
}
inline ::google::protobuf::RepeatedField< double >*
AskBid::mutable_askprice() {
  return &askprice_;
}

// repeated uint32 askVolume = 4;
inline int AskBid::askvolume_size() const {
  return askvolume_.size();
}
inline void AskBid::clear_askvolume() {
  askvolume_.Clear();
}
inline ::google::protobuf::uint32 AskBid::askvolume(int index) const {
  return askvolume_.Get(index);
}
inline void AskBid::set_askvolume(int index, ::google::protobuf::uint32 value) {
  askvolume_.Set(index, value);
}
inline void AskBid::add_askvolume(::google::protobuf::uint32 value) {
  askvolume_.Add(value);
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
AskBid::askvolume() const {
  return askvolume_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
AskBid::mutable_askvolume() {
  return &askvolume_;
}

// -------------------------------------------------------------------

// QuoteStatic

// required uint32 date = 1;
inline bool QuoteStatic::has_date() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void QuoteStatic::set_has_date() {
  _has_bits_[0] |= 0x00000001u;
}
inline void QuoteStatic::clear_has_date() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void QuoteStatic::clear_date() {
  date_ = 0u;
  clear_has_date();
}
inline ::google::protobuf::uint32 QuoteStatic::date() const {
  return date_;
}
inline void QuoteStatic::set_date(::google::protobuf::uint32 value) {
  set_has_date();
  date_ = value;
}

// required uint32 tradeday = 2;
inline bool QuoteStatic::has_tradeday() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void QuoteStatic::set_has_tradeday() {
  _has_bits_[0] |= 0x00000002u;
}
inline void QuoteStatic::clear_has_tradeday() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void QuoteStatic::clear_tradeday() {
  tradeday_ = 0u;
  clear_has_tradeday();
}
inline ::google::protobuf::uint32 QuoteStatic::tradeday() const {
  return tradeday_;
}
inline void QuoteStatic::set_tradeday(::google::protobuf::uint32 value) {
  set_has_tradeday();
  tradeday_ = value;
}

// required double uplimit = 3;
inline bool QuoteStatic::has_uplimit() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void QuoteStatic::set_has_uplimit() {
  _has_bits_[0] |= 0x00000004u;
}
inline void QuoteStatic::clear_has_uplimit() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void QuoteStatic::clear_uplimit() {
  uplimit_ = 0;
  clear_has_uplimit();
}
inline double QuoteStatic::uplimit() const {
  return uplimit_;
}
inline void QuoteStatic::set_uplimit(double value) {
  set_has_uplimit();
  uplimit_ = value;
}

// required double downlimit = 4;
inline bool QuoteStatic::has_downlimit() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void QuoteStatic::set_has_downlimit() {
  _has_bits_[0] |= 0x00000008u;
}
inline void QuoteStatic::clear_has_downlimit() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void QuoteStatic::clear_downlimit() {
  downlimit_ = 0;
  clear_has_downlimit();
}
inline double QuoteStatic::downlimit() const {
  return downlimit_;
}
inline void QuoteStatic::set_downlimit(double value) {
  set_has_downlimit();
  downlimit_ = value;
}

// required int64 preinterest = 5;
inline bool QuoteStatic::has_preinterest() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void QuoteStatic::set_has_preinterest() {
  _has_bits_[0] |= 0x00000010u;
}
inline void QuoteStatic::clear_has_preinterest() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void QuoteStatic::clear_preinterest() {
  preinterest_ = GOOGLE_LONGLONG(0);
  clear_has_preinterest();
}
inline ::google::protobuf::int64 QuoteStatic::preinterest() const {
  return preinterest_;
}
inline void QuoteStatic::set_preinterest(::google::protobuf::int64 value) {
  set_has_preinterest();
  preinterest_ = value;
}

// required double preclose = 6;
inline bool QuoteStatic::has_preclose() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void QuoteStatic::set_has_preclose() {
  _has_bits_[0] |= 0x00000020u;
}
inline void QuoteStatic::clear_has_preclose() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void QuoteStatic::clear_preclose() {
  preclose_ = 0;
  clear_has_preclose();
}
inline double QuoteStatic::preclose() const {
  return preclose_;
}
inline void QuoteStatic::set_preclose(double value) {
  set_has_preclose();
  preclose_ = value;
}

// required double presettle = 7;
inline bool QuoteStatic::has_presettle() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void QuoteStatic::set_has_presettle() {
  _has_bits_[0] |= 0x00000040u;
}
inline void QuoteStatic::clear_has_presettle() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void QuoteStatic::clear_presettle() {
  presettle_ = 0;
  clear_has_presettle();
}
inline double QuoteStatic::presettle() const {
  return presettle_;
}
inline void QuoteStatic::set_presettle(double value) {
  set_has_presettle();
  presettle_ = value;
}

// required double predelta = 8;
inline bool QuoteStatic::has_predelta() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void QuoteStatic::set_has_predelta() {
  _has_bits_[0] |= 0x00000080u;
}
inline void QuoteStatic::clear_has_predelta() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void QuoteStatic::clear_predelta() {
  predelta_ = 0;
  clear_has_predelta();
}
inline double QuoteStatic::predelta() const {
  return predelta_;
}
inline void QuoteStatic::set_predelta(double value) {
  set_has_predelta();
  predelta_ = value;
}

// -------------------------------------------------------------------

// MarketQuoteExData

// optional double rsi_turnover = 1;
inline bool MarketQuoteExData::has_rsi_turnover() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MarketQuoteExData::set_has_rsi_turnover() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MarketQuoteExData::clear_has_rsi_turnover() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MarketQuoteExData::clear_rsi_turnover() {
  rsi_turnover_ = 0;
  clear_has_rsi_turnover();
}
inline double MarketQuoteExData::rsi_turnover() const {
  return rsi_turnover_;
}
inline void MarketQuoteExData::set_rsi_turnover(double value) {
  set_has_rsi_turnover();
  rsi_turnover_ = value;
}

// optional double rsi_roc = 2;
inline bool MarketQuoteExData::has_rsi_roc() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MarketQuoteExData::set_has_rsi_roc() {
  _has_bits_[0] |= 0x00000002u;
}
inline void MarketQuoteExData::clear_has_rsi_roc() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void MarketQuoteExData::clear_rsi_roc() {
  rsi_roc_ = 0;
  clear_has_rsi_roc();
}
inline double MarketQuoteExData::rsi_roc() const {
  return rsi_roc_;
}
inline void MarketQuoteExData::set_rsi_roc(double value) {
  set_has_rsi_roc();
  rsi_roc_ = value;
}

// optional double rop_found = 3;
inline bool MarketQuoteExData::has_rop_found() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void MarketQuoteExData::set_has_rop_found() {
  _has_bits_[0] |= 0x00000004u;
}
inline void MarketQuoteExData::clear_has_rop_found() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void MarketQuoteExData::clear_rop_found() {
  rop_found_ = 0;
  clear_has_rop_found();
}
inline double MarketQuoteExData::rop_found() const {
  return rop_found_;
}
inline void MarketQuoteExData::set_rop_found(double value) {
  set_has_rop_found();
  rop_found_ = value;
}

// -------------------------------------------------------------------

// MarketQuote

// required uint32 jzcode = 1;
inline bool MarketQuote::has_jzcode() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MarketQuote::set_has_jzcode() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MarketQuote::clear_has_jzcode() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MarketQuote::clear_jzcode() {
  jzcode_ = 0u;
  clear_has_jzcode();
}
inline ::google::protobuf::uint32 MarketQuote::jzcode() const {
  return jzcode_;
}
inline void MarketQuote::set_jzcode(::google::protobuf::uint32 value) {
  set_has_jzcode();
  jzcode_ = value;
}

// optional string symbol = 2;
inline bool MarketQuote::has_symbol() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MarketQuote::set_has_symbol() {
  _has_bits_[0] |= 0x00000002u;
}
inline void MarketQuote::clear_has_symbol() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void MarketQuote::clear_symbol() {
  if (symbol_ != &::google::protobuf::internal::kEmptyString) {
    symbol_->clear();
  }
  clear_has_symbol();
}
inline const ::std::string& MarketQuote::symbol() const {
  return *symbol_;
}
inline void MarketQuote::set_symbol(const ::std::string& value) {
  set_has_symbol();
  if (symbol_ == &::google::protobuf::internal::kEmptyString) {
    symbol_ = new ::std::string;
  }
  symbol_->assign(value);
}
inline void MarketQuote::set_symbol(const char* value) {
  set_has_symbol();
  if (symbol_ == &::google::protobuf::internal::kEmptyString) {
    symbol_ = new ::std::string;
  }
  symbol_->assign(value);
}
inline void MarketQuote::set_symbol(const char* value, size_t size) {
  set_has_symbol();
  if (symbol_ == &::google::protobuf::internal::kEmptyString) {
    symbol_ = new ::std::string;
  }
  symbol_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* MarketQuote::mutable_symbol() {
  set_has_symbol();
  if (symbol_ == &::google::protobuf::internal::kEmptyString) {
    symbol_ = new ::std::string;
  }
  return symbol_;
}
inline ::std::string* MarketQuote::release_symbol() {
  clear_has_symbol();
  if (symbol_ == &::google::protobuf::internal::kEmptyString) {
    return NULL;
  } else {
    ::std::string* temp = symbol_;
    symbol_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    return temp;
  }
}
inline void MarketQuote::set_allocated_symbol(::std::string* symbol) {
  if (symbol_ != &::google::protobuf::internal::kEmptyString) {
    delete symbol_;
  }
  if (symbol) {
    set_has_symbol();
    symbol_ = symbol;
  } else {
    clear_has_symbol();
    symbol_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  }
}

// required uint32 time = 3;
inline bool MarketQuote::has_time() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void MarketQuote::set_has_time() {
  _has_bits_[0] |= 0x00000004u;
}
inline void MarketQuote::clear_has_time() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void MarketQuote::clear_time() {
  time_ = 0u;
  clear_has_time();
}
inline ::google::protobuf::uint32 MarketQuote::time() const {
  return time_;
}
inline void MarketQuote::set_time(::google::protobuf::uint32 value) {
  set_has_time();
  time_ = value;
}

// required double open = 4;
inline bool MarketQuote::has_open() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void MarketQuote::set_has_open() {
  _has_bits_[0] |= 0x00000008u;
}
inline void MarketQuote::clear_has_open() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void MarketQuote::clear_open() {
  open_ = 0;
  clear_has_open();
}
inline double MarketQuote::open() const {
  return open_;
}
inline void MarketQuote::set_open(double value) {
  set_has_open();
  open_ = value;
}

// required double high = 5;
inline bool MarketQuote::has_high() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void MarketQuote::set_has_high() {
  _has_bits_[0] |= 0x00000010u;
}
inline void MarketQuote::clear_has_high() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void MarketQuote::clear_high() {
  high_ = 0;
  clear_has_high();
}
inline double MarketQuote::high() const {
  return high_;
}
inline void MarketQuote::set_high(double value) {
  set_has_high();
  high_ = value;
}

// required double low = 6;
inline bool MarketQuote::has_low() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void MarketQuote::set_has_low() {
  _has_bits_[0] |= 0x00000020u;
}
inline void MarketQuote::clear_has_low() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void MarketQuote::clear_low() {
  low_ = 0;
  clear_has_low();
}
inline double MarketQuote::low() const {
  return low_;
}
inline void MarketQuote::set_low(double value) {
  set_has_low();
  low_ = value;
}

// required double last = 7;
inline bool MarketQuote::has_last() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void MarketQuote::set_has_last() {
  _has_bits_[0] |= 0x00000040u;
}
inline void MarketQuote::clear_has_last() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void MarketQuote::clear_last() {
  last_ = 0;
  clear_has_last();
}
inline double MarketQuote::last() const {
  return last_;
}
inline void MarketQuote::set_last(double value) {
  set_has_last();
  last_ = value;
}

// required int64 volume = 8;
inline bool MarketQuote::has_volume() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void MarketQuote::set_has_volume() {
  _has_bits_[0] |= 0x00000080u;
}
inline void MarketQuote::clear_has_volume() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void MarketQuote::clear_volume() {
  volume_ = GOOGLE_LONGLONG(0);
  clear_has_volume();
}
inline ::google::protobuf::int64 MarketQuote::volume() const {
  return volume_;
}
inline void MarketQuote::set_volume(::google::protobuf::int64 value) {
  set_has_volume();
  volume_ = value;
}

// required double turnover = 9;
inline bool MarketQuote::has_turnover() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void MarketQuote::set_has_turnover() {
  _has_bits_[0] |= 0x00000100u;
}
inline void MarketQuote::clear_has_turnover() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void MarketQuote::clear_turnover() {
  turnover_ = 0;
  clear_has_turnover();
}
inline double MarketQuote::turnover() const {
  return turnover_;
}
inline void MarketQuote::set_turnover(double value) {
  set_has_turnover();
  turnover_ = value;
}

// required int64 interest = 10;
inline bool MarketQuote::has_interest() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void MarketQuote::set_has_interest() {
  _has_bits_[0] |= 0x00000200u;
}
inline void MarketQuote::clear_has_interest() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void MarketQuote::clear_interest() {
  interest_ = GOOGLE_LONGLONG(0);
  clear_has_interest();
}
inline ::google::protobuf::int64 MarketQuote::interest() const {
  return interest_;
}
inline void MarketQuote::set_interest(::google::protobuf::int64 value) {
  set_has_interest();
  interest_ = value;
}

// required double close = 11;
inline bool MarketQuote::has_close() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void MarketQuote::set_has_close() {
  _has_bits_[0] |= 0x00000400u;
}
inline void MarketQuote::clear_has_close() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void MarketQuote::clear_close() {
  close_ = 0;
  clear_has_close();
}
inline double MarketQuote::close() const {
  return close_;
}
inline void MarketQuote::set_close(double value) {
  set_has_close();
  close_ = value;
}

// required double settle = 12;
inline bool MarketQuote::has_settle() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void MarketQuote::set_has_settle() {
  _has_bits_[0] |= 0x00000800u;
}
inline void MarketQuote::clear_has_settle() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void MarketQuote::clear_settle() {
  settle_ = 0;
  clear_has_settle();
}
inline double MarketQuote::settle() const {
  return settle_;
}
inline void MarketQuote::set_settle(double value) {
  set_has_settle();
  settle_ = value;
}

// required double delta = 13;
inline bool MarketQuote::has_delta() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void MarketQuote::set_has_delta() {
  _has_bits_[0] |= 0x00001000u;
}
inline void MarketQuote::clear_has_delta() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void MarketQuote::clear_delta() {
  delta_ = 0;
  clear_has_delta();
}
inline double MarketQuote::delta() const {
  return delta_;
}
inline void MarketQuote::set_delta(double value) {
  set_has_delta();
  delta_ = value;
}

// required .jzs.msg.md.AskBid ab = 14;
inline bool MarketQuote::has_ab() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void MarketQuote::set_has_ab() {
  _has_bits_[0] |= 0x00002000u;
}
inline void MarketQuote::clear_has_ab() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void MarketQuote::clear_ab() {
  if (ab_ != NULL) ab_->::jzs::msg::md::AskBid::Clear();
  clear_has_ab();
}
inline const ::jzs::msg::md::AskBid& MarketQuote::ab() const {
  return ab_ != NULL ? *ab_ : *default_instance_->ab_;
}
inline ::jzs::msg::md::AskBid* MarketQuote::mutable_ab() {
  set_has_ab();
  if (ab_ == NULL) ab_ = new ::jzs::msg::md::AskBid;
  return ab_;
}
inline ::jzs::msg::md::AskBid* MarketQuote::release_ab() {
  clear_has_ab();
  ::jzs::msg::md::AskBid* temp = ab_;
  ab_ = NULL;
  return temp;
}
inline void MarketQuote::set_allocated_ab(::jzs::msg::md::AskBid* ab) {
  delete ab_;
  ab_ = ab;
  if (ab) {
    set_has_ab();
  } else {
    clear_has_ab();
  }
}

// required .jzs.msg.md.QuoteStatic qs = 15;
inline bool MarketQuote::has_qs() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void MarketQuote::set_has_qs() {
  _has_bits_[0] |= 0x00004000u;
}
inline void MarketQuote::clear_has_qs() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void MarketQuote::clear_qs() {
  if (qs_ != NULL) qs_->::jzs::msg::md::QuoteStatic::Clear();
  clear_has_qs();
}
inline const ::jzs::msg::md::QuoteStatic& MarketQuote::qs() const {
  return qs_ != NULL ? *qs_ : *default_instance_->qs_;
}
inline ::jzs::msg::md::QuoteStatic* MarketQuote::mutable_qs() {
  set_has_qs();
  if (qs_ == NULL) qs_ = new ::jzs::msg::md::QuoteStatic;
  return qs_;
}
inline ::jzs::msg::md::QuoteStatic* MarketQuote::release_qs() {
  clear_has_qs();
  ::jzs::msg::md::QuoteStatic* temp = qs_;
  qs_ = NULL;
  return temp;
}
inline void MarketQuote::set_allocated_qs(::jzs::msg::md::QuoteStatic* qs) {
  delete qs_;
  qs_ = qs;
  if (qs) {
    set_has_qs();
  } else {
    clear_has_qs();
  }
}

// required double iopv = 16;
inline bool MarketQuote::has_iopv() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void MarketQuote::set_has_iopv() {
  _has_bits_[0] |= 0x00008000u;
}
inline void MarketQuote::clear_has_iopv() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void MarketQuote::clear_iopv() {
  iopv_ = 0;
  clear_has_iopv();
}
inline double MarketQuote::iopv() const {
  return iopv_;
}
inline void MarketQuote::set_iopv(double value) {
  set_has_iopv();
  iopv_ = value;
}

// required double avgbidpx = 17;
inline bool MarketQuote::has_avgbidpx() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void MarketQuote::set_has_avgbidpx() {
  _has_bits_[0] |= 0x00010000u;
}
inline void MarketQuote::clear_has_avgbidpx() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void MarketQuote::clear_avgbidpx() {
  avgbidpx_ = 0;
  clear_has_avgbidpx();
}
inline double MarketQuote::avgbidpx() const {
  return avgbidpx_;
}
inline void MarketQuote::set_avgbidpx(double value) {
  set_has_avgbidpx();
  avgbidpx_ = value;
}

// required int64 totbidvol = 18;
inline bool MarketQuote::has_totbidvol() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void MarketQuote::set_has_totbidvol() {
  _has_bits_[0] |= 0x00020000u;
}
inline void MarketQuote::clear_has_totbidvol() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void MarketQuote::clear_totbidvol() {
  totbidvol_ = GOOGLE_LONGLONG(0);
  clear_has_totbidvol();
}
inline ::google::protobuf::int64 MarketQuote::totbidvol() const {
  return totbidvol_;
}
inline void MarketQuote::set_totbidvol(::google::protobuf::int64 value) {
  set_has_totbidvol();
  totbidvol_ = value;
}

// required double avgaskpx = 19;
inline bool MarketQuote::has_avgaskpx() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void MarketQuote::set_has_avgaskpx() {
  _has_bits_[0] |= 0x00040000u;
}
inline void MarketQuote::clear_has_avgaskpx() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void MarketQuote::clear_avgaskpx() {
  avgaskpx_ = 0;
  clear_has_avgaskpx();
}
inline double MarketQuote::avgaskpx() const {
  return avgaskpx_;
}
inline void MarketQuote::set_avgaskpx(double value) {
  set_has_avgaskpx();
  avgaskpx_ = value;
}

// required int64 totaskvol = 20;
inline bool MarketQuote::has_totaskvol() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void MarketQuote::set_has_totaskvol() {
  _has_bits_[0] |= 0x00080000u;
}
inline void MarketQuote::clear_has_totaskvol() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void MarketQuote::clear_totaskvol() {
  totaskvol_ = GOOGLE_LONGLONG(0);
  clear_has_totaskvol();
}
inline ::google::protobuf::int64 MarketQuote::totaskvol() const {
  return totaskvol_;
}
inline void MarketQuote::set_totaskvol(::google::protobuf::int64 value) {
  set_has_totaskvol();
  totaskvol_ = value;
}

// optional int32 quoteage = 21;
inline bool MarketQuote::has_quoteage() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void MarketQuote::set_has_quoteage() {
  _has_bits_[0] |= 0x00100000u;
}
inline void MarketQuote::clear_has_quoteage() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void MarketQuote::clear_quoteage() {
  quoteage_ = 0;
  clear_has_quoteage();
}
inline ::google::protobuf::int32 MarketQuote::quoteage() const {
  return quoteage_;
}
inline void MarketQuote::set_quoteage(::google::protobuf::int32 value) {
  set_has_quoteage();
  quoteage_ = value;
}

// optional .jzs.msg.md.MarketQuoteExData ext = 22;
inline bool MarketQuote::has_ext() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void MarketQuote::set_has_ext() {
  _has_bits_[0] |= 0x00200000u;
}
inline void MarketQuote::clear_has_ext() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void MarketQuote::clear_ext() {
  if (ext_ != NULL) ext_->::jzs::msg::md::MarketQuoteExData::Clear();
  clear_has_ext();
}
inline const ::jzs::msg::md::MarketQuoteExData& MarketQuote::ext() const {
  return ext_ != NULL ? *ext_ : *default_instance_->ext_;
}
inline ::jzs::msg::md::MarketQuoteExData* MarketQuote::mutable_ext() {
  set_has_ext();
  if (ext_ == NULL) ext_ = new ::jzs::msg::md::MarketQuoteExData;
  return ext_;
}
inline ::jzs::msg::md::MarketQuoteExData* MarketQuote::release_ext() {
  clear_has_ext();
  ::jzs::msg::md::MarketQuoteExData* temp = ext_;
  ext_ = NULL;
  return temp;
}
inline void MarketQuote::set_allocated_ext(::jzs::msg::md::MarketQuoteExData* ext) {
  delete ext_;
  ext_ = ext;
  if (ext) {
    set_has_ext();
  } else {
    clear_has_ext();
  }
}

// optional double vwap = 23;
inline bool MarketQuote::has_vwap() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void MarketQuote::set_has_vwap() {
  _has_bits_[0] |= 0x00400000u;
}
inline void MarketQuote::clear_has_vwap() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void MarketQuote::clear_vwap() {
  vwap_ = 0;
  clear_has_vwap();
}
inline double MarketQuote::vwap() const {
  return vwap_;
}
inline void MarketQuote::set_vwap(double value) {
  set_has_vwap();
  vwap_ = value;
}

// -------------------------------------------------------------------

// MarketDataInd

// required .jzs.msg.md.MarketDataType type = 1;
inline bool MarketDataInd::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MarketDataInd::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MarketDataInd::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MarketDataInd::clear_type() {
  type_ = 1;
  clear_has_type();
}
inline ::jzs::msg::md::MarketDataType MarketDataInd::type() const {
  return static_cast< ::jzs::msg::md::MarketDataType >(type_);
}
inline void MarketDataInd::set_type(::jzs::msg::md::MarketDataType value) {
  assert(::jzs::msg::md::MarketDataType_IsValid(value));
  set_has_type();
  type_ = value;
}

// optional .jzs.msg.md.MarketQuote stk = 2;
inline bool MarketDataInd::has_stk() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MarketDataInd::set_has_stk() {
  _has_bits_[0] |= 0x00000002u;
}
inline void MarketDataInd::clear_has_stk() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void MarketDataInd::clear_stk() {
  if (stk_ != NULL) stk_->::jzs::msg::md::MarketQuote::Clear();
  clear_has_stk();
}
inline const ::jzs::msg::md::MarketQuote& MarketDataInd::stk() const {
  return stk_ != NULL ? *stk_ : *default_instance_->stk_;
}
inline ::jzs::msg::md::MarketQuote* MarketDataInd::mutable_stk() {
  set_has_stk();
  if (stk_ == NULL) stk_ = new ::jzs::msg::md::MarketQuote;
  return stk_;
}
inline ::jzs::msg::md::MarketQuote* MarketDataInd::release_stk() {
  clear_has_stk();
  ::jzs::msg::md::MarketQuote* temp = stk_;
  stk_ = NULL;
  return temp;
}
inline void MarketDataInd::set_allocated_stk(::jzs::msg::md::MarketQuote* stk) {
  delete stk_;
  stk_ = stk;
  if (stk) {
    set_has_stk();
  } else {
    clear_has_stk();
  }
}

// optional .jzs.msg.md.MarketQuote fut = 3;
inline bool MarketDataInd::has_fut() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void MarketDataInd::set_has_fut() {
  _has_bits_[0] |= 0x00000004u;
}
inline void MarketDataInd::clear_has_fut() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void MarketDataInd::clear_fut() {
  if (fut_ != NULL) fut_->::jzs::msg::md::MarketQuote::Clear();
  clear_has_fut();
}
inline const ::jzs::msg::md::MarketQuote& MarketDataInd::fut() const {
  return fut_ != NULL ? *fut_ : *default_instance_->fut_;
}
inline ::jzs::msg::md::MarketQuote* MarketDataInd::mutable_fut() {
  set_has_fut();
  if (fut_ == NULL) fut_ = new ::jzs::msg::md::MarketQuote;
  return fut_;
}
inline ::jzs::msg::md::MarketQuote* MarketDataInd::release_fut() {
  clear_has_fut();
  ::jzs::msg::md::MarketQuote* temp = fut_;
  fut_ = NULL;
  return temp;
}
inline void MarketDataInd::set_allocated_fut(::jzs::msg::md::MarketQuote* fut) {
  delete fut_;
  fut_ = fut;
  if (fut) {
    set_has_fut();
  } else {
    clear_has_fut();
  }
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace md
}  // namespace msg
}  // namespace jzs

#ifndef SWIG
namespace google {
namespace protobuf {

template <>
inline const EnumDescriptor* GetEnumDescriptor< ::jzs::msg::md::MarketDataType>() {
  return ::jzs::msg::md::MarketDataType_descriptor();
}

}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_md_2eproto__INCLUDED
